<?php
/**
 * 二维码 管理
 *
 * @author    Alex Xun xunzhibin@expert.com
 * @version   1.0
 * @copyright (C) 2018 Jnexpert Ltd. All rights reserved
 * @file      qrcode\controller\v1\Qrcode.php
 */

namespace app\qrcode\controller\v1;

use controller\BasicWechat;

/**
 * 二维码 控制器类
 *
 * @author Alex Xun xunzhibin@jnexpert.com
 * @package controller
 */
class Qrcode extends BasicWechat
{
    /**
     * 公众号 第三方库 初始化
     *
     * 根据具体所需服务，实例不同的接口类
     *
     * @author Alex Xun xunzhibin@jnexpert.com
     */
    protected function initVendor()
    {
        // 实例化 第三方库
        $this->wechat = new \WeChat\Qrcode($this->config);
    }

    /**
     * 生成 二维码
     *
     * 根据提交数据，生成不同类型二维码(临时、永久)
     *
     * @author Alex Xun xunzhibin@jnexpert.com
     */
    public function create()
    {
        // 有效时间，默认无
        $expire_seconds = '';
        if (isset($this->data['expire_seconds'])) {
            $expire_seconds = $this->data['expire_seconds'];
        }

        // 获取ticket
        $result = $this->wechat->create($this->data['scene'], $expire_seconds);
        $ticket = $result['ticket'];

        // 生成 二维码 url
        $url = $this->wechat->url($ticket);

        // 响应
        return $this->response([
            'url' => $url
        ], true);
    }
}
